function Animal(){
  this.a = 1; // 实例属性
}

Animal.prototype.say = function () {

};

function mockNew(cons) {
  let obj = {};
  obj.__proto__ = Animal.prototype; // 继承公有属性
  let r = cons.call(obj); // 可能返回一个结果
  return typeof r === 'object' ? r : obj;
}

let animal = mockNew(Animal);

console.log(animal.a, animal.say);
